package interfaces;

import java.awt.image.BufferedImage;
import java.io.File;

import core.EnergyMap;

public abstract class SeamCarve {
	public enum ResizeDirection {vertical, horizontal};
	
	//easier to reference outside the class
	public static final ResizeDirection vertical = ResizeDirection.vertical;
	public static final ResizeDirection horizontal = ResizeDirection.horizontal;
	
	
	/**
	 * constructor for SeamCarve information
	 * 
	 * @param original		original image
	 * @param emap			energy representation of image
	 * @param maxScore		maximum score that a seam can have
	 * @param maxNum		maximum number of seams to remove (null if no limit) 
	 * @param direction		direction for resizing
	 */
	public SeamCarve(BufferedImage original, EnergyMap emap, double maxScore, Integer maxNum, ResizeDirection direction) {
		
	}
	
	/**
	 * creates the final image with seams removed
	 * 
	 * @return			the energy of the image
	 */
	public abstract BufferedImage getImage();
	
	
	
	
	//I think it should be Files instead of BufferedImages due to memory concerns
	/**
	 * returns the Files that point to the animation for determining seams
	 *  
	 * @return
	 */
	public abstract File[] getAnimPics();
}
